package com.party.api.dto.wechat.requst;

import com.alibaba.fastjson.annotation.JSONField;
import com.google.common.collect.Maps;

import java.util.Map;

/**
 * 生成小程序二维码请求
 * Created by yifeng
 *
 * @date 2018/2/26 0026
 * @time 上午 10:38
 */
public class XcxQrCodeRequest {
    // 最大32个可见字符，只支持数字，大小写英文以及部分特殊字符：!#$&'()*+,/:;=?@-._~，
    // 其它字符请自行编码为合法字符（因不支持%，中文无法使用 urlencode 处理，请使用其他编码方式）
    private String scene;

    // 必须是已经发布的小程序存在的页面（否则报错），例如 "pages/index/index" ,
    // 根路径前不要填加'/',不能携带参数（参数请放在scene字段里），如果不填写这个字段，默认跳主页面
    private String page;

    // 二维码的宽度 默认430
    private int width = 430;

    // 默认值：false 自动配置线条颜色，如果颜色依然是黑色，则说明不建议配置主色调
    @JSONField(name = "auto_color")
    private boolean autoColor = false;

    // 默认值：{"r":"0","g":"0","b":"0"} auto_color 为 false 时生效，使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"}
    @JSONField(name = "line_color")
    private Object lineColor;

    // 是否需要透明底色， is_hyaline 为true时，生成透明底色的小程序码
    @JSONField(name = "is_hyaline")
    private boolean isHyaline;

    public String getScene() {
        return scene;
    }

    public void setScene(String scene) {
        this.scene = scene;
    }

    public String getPage() {
        return page;
    }

    public void setPage(String page) {
        this.page = page;
    }

    public int getWidth() {
        return width;
    }

    public void setWidth(int width) {
        this.width = width;
    }

    public boolean isAutoColor() {
        return autoColor;
    }

    public void setAutoColor(boolean autoColor) {
        this.autoColor = autoColor;
    }

    public Object getLineColor() {
        Map<String, Object> lineColorMap = Maps.newConcurrentMap();
        lineColorMap.put("r", "0");
        lineColorMap.put("g", "0");
        lineColorMap.put("b", "0");
        return lineColorMap;
    }

    public void setLineColor(Object lineColor) {
        this.lineColor = lineColor;
    }

    public boolean isHyaline() {
        return isHyaline;
    }

    public void setHyaline(boolean hyaline) {
        isHyaline = hyaline;
    }
}
